/**
 * flyway 就是一款数据库版本管理工具，他可以记录数据库的变化记录。
 *   - 很多公司都是人工去维护、同步数据库脚本，但京城出现倏忽而遗漏的情况，比如：我们再开发环境对某张表新增了一个字段，而提交测试的时候忘记了提交该SQL脚本，导致出现Bug而测试中断，从而影响开发、测试的工作效率
 *   - 当你的服务是允许客户自己私有部署的时候，每个客户可能都在不同的数据库版本上，这时候对于不同的客户给不同的升级机制就相当重要了
 *
 * flyway 会对每次执行过 SQL脚本保存到flyway_schema_history中，在数据库中保存sql脚本的版本号和对sql生成checksum，当下次执行数据迁移的时候，就会按照版本好从低到高执行。如果以前的版本号脚本已经执行过就不会在执
 * 如果以前的版本的sql已经被修改在执行的过程中则会报错
 * flyway的工作流程
 * - 初次使用时，flyway会创建一个flyway_schema_history表，用于记录执行记录
 * - 启动flyway后，flyway会自动扫描项目指定目录下的所有sql脚本，与flyway_schema_history 记录进行对比，如果数据库记录执行过的脚本记录，与项目中的sql脚本不一致，flyway会报错并停止执行。
 * 0 如果校验通过，则根据表中的sql记录最大版本号，
 *
 * https://cloud.tencent.com/developer/article/2123592
 */
package com.shaozj.flyway;